package persistence;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import model.Revista;

public class RevistaDaoImpl implements RevistaDao {
	Connection c;

	public RevistaDaoImpl() {
		GenericDao gDao = new GenericDao();
		c = gDao.getConnection();
	}

	@Override
	public void salvaRevista(Revista revista) throws SQLException {
		String sql = "INSERT INTO revistas VALUES (?,?,?)";
		PreparedStatement ps = c.prepareStatement(sql);

		ps.setInt(1, revista.getIdRevista());
		ps.setString(2, revista.getRevista());
		ps.setInt(3, revista.getEdicao());

		ps.execute();
		ps.close();

	}

	@Override
	public void editaRevista(Revista revista) throws SQLException {
		String sql = "UPDATE revistas SET revista = ?, " + "edicao = ?, "
				+ "WHERE idRevista = ?";
		PreparedStatement ps = c.prepareStatement(sql);
		ps.setString(1, revista.getRevista());
		ps.setInt(2, revista.getEdicao());
		ps.setInt(3, revista.getIdRevista());
		ps.execute();
		ps.close();

	}

	@Override
	public void excluiRevista(Revista revista) throws SQLException {
		String sql = "DELETE revistas WHERE idRevista = ?";
		PreparedStatement ps = c.prepareStatement(sql);
		ps.setInt(1, revista.getIdRevista());
		ps.execute();
		ps.close();

	}

	@Override
	public Revista pesquisaRevista(Revista revista) throws SQLException {
		Revista r = new Revista();
		String sql = "SELECT idRevista, revista, edicao FROM revistas WHERE idRevista = ?";
		PreparedStatement ps = c.prepareStatement(sql);
		ps.setInt(1, revista.getIdRevista());
		ResultSet rs = ps.executeQuery();
		if (rs.next()) {

			r.setIdRevista(rs.getInt("idRevista"));
			r.setRevista(rs.getString("revista"));
			r.setEdicao(rs.getInt("edicao"));

		}
		ps.close();
		rs.close();
		return r;
	}
}
